package com.ruoyi.consultation.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ruoyi.consultation.domain.LabConsultationSubject;

/**
 * 咨询栏目Mapper接口
 * 
 * @author winner pan
 * @date 2022-03-28
 */
public interface LabConsultationSubjectMapper 
{
    /**
     * 查询咨询栏目
     * 
     * @param subjectId 咨询栏目ID
     * @return 咨询栏目
     */
    public LabConsultationSubject selectLabConsultationSubjectById(Long subjectId);

    /**
     * 查询咨询栏目列表
     * 
     * @param labConsultationSubject 咨询栏目
     * @return 咨询栏目集合
     */
    public List<LabConsultationSubject> selectLabConsultationSubjectList(LabConsultationSubject labConsultationSubject);

    /**
     * 新增咨询栏目
     * 
     * @param labConsultationSubject 咨询栏目
     * @return 结果
     */
    public int insertLabConsultationSubject(LabConsultationSubject labConsultationSubject);

    /**
     * 修改咨询栏目
     * 
     * @param labConsultationSubject 咨询栏目
     * @return 结果
     */
    public int updateLabConsultationSubject(LabConsultationSubject labConsultationSubject);

    /**
     * 删除咨询栏目
     * 
     * @param subjectId 咨询栏目ID
     * @return 结果
     */
    public int deleteLabConsultationSubjectById(Long subjectId);

    /**
     * 批量删除咨询栏目
     * 
     * @param subjectIds 需要删除的数据ID
     * @return 结果
     */
    public int deleteLabConsultationSubjectByIds(Long[] subjectIds);
    
    /**
     * 修改所在部门的父级部门状态
     * 
     * @param dept 部门
     */
    public void updateStatus(LabConsultationSubject subject);

    /**
     * 修改子元素关系
     * 
     * @param depts 子元素
     * @return 结果
     */
    public int updateChildren(@Param("subjects") List<LabConsultationSubject> subjects);
    
    /**
     * 根据ID查询所有子部门
     * 
     * @param deptId 部门ID
     * @return 部门列表
     */
    public List<LabConsultationSubject> selectChildrenById(Long subjectId);
    
    public int deleteChildrenById(Long subjectId);
}
